package com.zerox.service.impl;

import com.zerox.mapper.SysDeptMapper;
import com.zerox.pojo.SysDept;
import com.zerox.service.SysDeptService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;

import java.util.ArrayList;
import java.util.List;
@Service
public class SysDeptServiceImpl implements SysDeptService {

    @Autowired
    private SysDeptMapper deptMapper;

//    @Override
//    public List<SysDept> selectDeptList(SysDept dept) {
//
//        return deptMapper.selectDeptList(dept);
//
//    }
//
//    /**
//     * 构建前端所需要树结构
//     *
//     * @param depts 部门列表
//     * @return 树结构列表
//     */
//    @Override
//    public List<SysDept> buildDeptTree(List<SysDept> depts)
//    {
//        List<SysDept> returnList = new ArrayList<SysDept>();
//        List<Long> tempList = new ArrayList<Long>();
//        for (SysDept dept : depts)
//        {
//            tempList.add(dept.getDeptId());
//        }
//        for (SysDept dept : depts)
//        {
//            // 如果是顶级节点, 遍历该父节点的所有子节点
//            if (!tempList.contains(dept.getParentId()))
//            {
//                recursionFn(depts, dept);
//                returnList.add(dept);
//            }
//        }
//        if (returnList.isEmpty())
//        {
//            returnList = depts;
//        }
//        return returnList;
//    }
//
//    /**
//     * 得到子节点列表
//     */
//    private List<SysDept> getChildList(List<SysDept> list, SysDept t)
//    {
//        List<SysDept> tlist = new ArrayList<SysDept>();
//        for (SysDept n : list) {
//            if (n.getParentId() != null && n.getParentId() == t.getDeptId())
//            {
//                tlist.add(n);
//            }
//        }
//        return tlist;
//    }
//
//    /**
//     * 递归列表
//     */
//    private void recursionFn(List<SysDept> list, SysDept t)
//    {
//        // 得到子节点列表
//        List<SysDept> childList = getChildList(list, t);
//        t.setChildren(childList);
//        for (SysDept tChild : childList)
//        {
//            if (hasChild(list, tChild))
//            {
//                recursionFn(list, tChild);
//            }
//        }
//    }
//
//    /**
//     * 判断是否有子节点
//     */
//    private boolean hasChild(List<SysDept> list, SysDept t)
//    {
//        return getChildList(list, t).size() > 0;
//    }

    @Override
    public List<SysDept> list(int page, Integer limit) {
        return deptMapper.list(page,limit);
    }

    @Override
    public int add(SysDept sysDept) {
        return deptMapper.add(sysDept);
    }

    @Override
    public SysDept view(Integer deptId) {
        return deptMapper.view(deptId);
    }

    @Override
    public int update(SysDept sysDept) {
        return deptMapper.update(sysDept);
    }

    @Override
    public int delete(Integer deptId) {
        return deptMapper.delete(deptId);
    }
}
